/**
 * @exports ROUTERDOM 路由类型检查器
 * @param path 相对路径
 * @param name 路由名称,要求与path中的文件名一致
 * @param meta 路由信息模块
 *        @param meta.title 路由中文名称
 *        @param meta.show 是否显示此路由 true=>显示、false=>不显示
 *        @param meta.icon UI组件的icon字符串,https://arco.design/vue/component/icon 查找字符串,如果是自定义或者是其他的UI组件,请查询文档,修正显示的方法
 *        @param meta.serialNumber 排序号码,建议使用2位数值去排布,eg 10 -> 20 -> 30
 *        @param meta.mapKey 注意,母路由必填,参数意义为  提供菜单栏的级别判定比如 1级路由,2级路由,3级路由,目前只支持到2级路由,3级路由不稳定
 * @param component 懒加载路由地址import()
 * @param children ROUTERDOM 路由类型检查器中的所有内容
 */
interface ROUTERBASE {
  path: string;
  name: string;
  meta: {
    title: string;
    show: boolean;
    icon: string | undefined;
    serialNumber: number;
    mapKey?: number;
  };
  component(): unknown;
}

interface ROUTERDOM extends ROUTERBASE {
  children?: Array<ROUTERBASE>;
}
/**
 * @exports READONLYROUTERDOM 路由类型检查器(只读)
 * @param path 相对路径
 * @param name 路由名称,要求与path中的文件名一致
 * @param meta 路由信息模块
 *        @param meta.title 路由中文名称
 *        @param meta.show 是否显示此路由 true=>显示、false=>不显示
 *        @param meta.icon UI组件的icon字符串,https://arco.design/vue/component/icon 查找字符串,如果是自定义或者是其他的UI组件,请查询文档,修正显示的方法
 *        @param meta.serialNumber 排序号码,建议使用2位数值去排布,eg 10 -> 20 -> 30
 *        @param meta.mapKey 注意,母路由必填,参数意义为  提供菜单栏的级别判定比如 1级路由,2级路由,3级路由,目前只支持到2级路由,3级路由不稳定
 * @param component 懒加载路由地址import()
 * @param children READONLYROUTERDOM 路由类型检查器中的所有内容
 */
export type READONLYROUTERDOM = Readonly<ROUTERDOM>;
